/*
     This file documents how a particle config works.  You should be famialiar with the info presented in the waveshape "Rotating Corridor" and should be famialiar with what's presented in the G-Force documentation.

   There's 4 differences between a particle and a waveshape.  Other than these 3 things, all the documentation from "Rotating Corridor" applies.
1)  One or more particles appear randomly while only one waveshape appears at any given time.  The PPrb parameter in your G-Force preferences file determines the probability one or more particles appear.
2)  Particles have an additional parameter called NUM, and it's evaluated only once (when the particle is about to start).  When G-Force decides that it's going to run a given particle, it runs NUM copies of that particle.  If you have experience in programming, NUM is how many instances or threads are made.  For each copy/instance, the A, B, and C variables are all shared.    For example, if you set NUM="3", that'd be the same thing as copying and pasting all the X, Y, B, and C expressions twice (renumbering the pasted expressions with new index values).  
3)  You have access to a variable called "ID".  It's a number from 0 to NUM-1 that identifies the copy/instance.
4)  You have access to a variable called "END_TIME".  It's the system time (the same units at the "t" variable) when the particle will expire.  For example, ( END_TIME - t ) is how many seconds until the particle expires.

This particle makes 2 to 5 spinning/orbiting arc segments that slowly rotate around (0,0). 
*/

/*  2 to 5 sub arcs is fine.  rnd() will return a non-integer, but that doesn't matter since NUM will chop off any non-integer part.  Remember that whatever NUM ends up being here will be the range of ID (used later).  */
NUM="2 + rnd( 3.01 )",

/*  We're only making small arc segments so a dozen or two lines is plenty to make each arc segment look round */
Stps=15,


//  This will cause the orbits to be ellipses whenever the frame is non-square
Aspc=0,

/*  The A variables are the same for each arc instance. 
A0 is the orbit size/radius
A1 is the orbit speed
A2 is how big each arc segment will be */
A0=".4 + rnd( .5 )",
A1=".15 + rnd( .4 )",
A2="( .03 + rnd( .07 ) ) / a0",


/*  Here we assume we're processing sub arc number ID.  Since we know it steps from 0 to NUM-1, 
[2 * PI * ( ID / NUM )] expresses the angle of subarc ID.  The [a1*t] term just causes the angle of subarc ID to slowly move through time.  We make this a B variable because all the stuff in quotes is constant for any given frame (ie, only depends on time). */ 
B0="a1 * t + 2 * PI * ( ID / NUM )",

/*  We set up B0 to express the angle of the startpoint of subarc ID at time t.  The [a2*s] term adds to B0 so that a subarc is traced as s goes from 0 to 1.   In the end, C0 is an angle for a given time and a given value of s.  We make this a C variable because we need to use it multiple times in the X and Y expressions (and want to avoid redundant computation) and because it contains s.*/ 
C0="b0 + a2 * s",


// We set up a0 to be our radius, so just draw the subarc, baby!
X0="a0 * cos( C0 )",
Y0="a0 * sin( C0 )",



ConB=1,

Vers=100